﻿using System;
using PortalCurriculo.Domain;
using PortalCurriculo.WebUI.Helpers;

namespace PortalCurriculo.WebUI.Empresas
{
    public partial class DadosCorporativos : Helpers.JuridicalAccessHelper
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (IsPostBack) return;

            if (Request.QueryString.Get("erro") != null)
                LabelErro.Visible = true;

            PreencherDropDownPorte();
            PreencherDropDownRamoAtividade();

            PreencherTela();
        }

        private void PreencherTela()
        {
            var empresa = (Empresa)SessionHelper.Session(SessionHelper.SessionName.EmpresaLogada);

            if (empresa == null) return;

            DropDownPorte.SelectedValue = empresa.IdPorte.ToString();
            DropDownRamoAtividade.SelectedValue = empresa.IdRamoAtividade.ToString();
            CheckConsultoria.Checked = (empresa.ConsultoriaRH ?? false);
        }

        private void PreencherDropDownPorte()
        {
            DropDownPorte.DataTextField = "Descricao";
            DropDownPorte.DataValueField = "Id";
            DropDownPorte.DataSource = new Porte().SelectAllActive<Porte>();
            DropDownPorte.DataBind();
        }

        private void PreencherDropDownRamoAtividade()
        {
            DropDownRamoAtividade.DataTextField = "Descricao";
            DropDownRamoAtividade.DataValueField = "Id";
            DropDownRamoAtividade.DataSource = new RamoAtividade().SelectAllActive<RamoAtividade>();
            DropDownRamoAtividade.DataBind();
        }

        protected void LinkButtonSalvar_Click(object sender, EventArgs e)
        {
            if (tabDadosCorporativos.ActiveTabIndex != 1)
            {
                var empresa = (Empresa)SessionHelper.Session(SessionHelper.SessionName.EmpresaLogada);

                if (empresa == null)
                {
                    var usuario = (Usuario)SessionHelper.Session(SessionHelper.SessionName.UsuarioLogado);

                    empresa = new Empresa { IdUsuario = usuario.Id };
                }

                empresa.IdPorte = int.Parse(DropDownPorte.SelectedValue);
                empresa.IdRamoAtividade = int.Parse(DropDownRamoAtividade.SelectedValue);
                empresa.ConsultoriaRH = CheckConsultoria.Checked;
                empresa.Ativo = true;

                empresa.Save();
                SessionHelper.Session(SessionHelper.SessionName.EmpresaLogada, empresa);

                WebHelper.ShowMessageBox("Dados salvos com sucesso! Não se esqueça de salvar o endereço.", ref UpdatePanelDadosCorporativos);
            }
            else
            {
                Endereco.Salvar(true);

                WebHelper.ShowMessageBox("Endereço salvo com sucesso!", ref UpdatePanelDadosCorporativos);
            }
        }

        protected void tabDadosCorporativos_ActiveTabChanged(object sender, EventArgs e)
        {
            LinkButtonSalvar.ValidationGroup = tabDadosCorporativos.ActiveTabIndex == 1 ? "ValidationGroupEndereco" : "";
        }
    }
}